/*express框架
*安装      npm install express  --save   //cnpm install express  --save
* body-parser 中间件 第三方的 获取post提交的数据 (模块)
*获得post数据的插    件express中间件
*1.npm install body-parser --save
*2. var bodyParser=require("body-parser")
*3.设置中间件
* app.use(bodyParser.urlencoded({extended:false}))
* app.use(bodyParser.json())
* */
var express=require('express');//引入
var bodyParser=require("body-parser");//引入获得post的中间件  body-parser
var app=new express();//实例化 构建一个对象
app.set('view engine','ejs');//设置模版引擎的类型
// app.engine('html',ejs.__express) //修改express默认模版ejs扩展名
// app.set('view engine','html');//设置模版引擎的类型

app.use(express.static("publicStatic"));//定义express找静态文件的路径
app.use('/baike',express.static("baikePublicStatic"));
//http://127.0.0.1:3000/baike/baidu.png 到baikePublicStatic' 虚拟路由指定到baikePublicStatic
// 中间件 是指匹配路由之前或者匹配路由 之后所做的一系列的操作,表示匹配任何路由 app.use
//权限判断 判断用户是否登录 ,没登录就强制登录 登录了就继续浏览
// next();继续向下匹配路由
app.use(function (req,res,next) {
    console.log(new Date());

    next();//next函数意思是 继续往下执行
});
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());


app.set("views",__dirname+'/statics');//设置模版的默认位置 把原先放ejs的模版的views  修改成statics

app.get('/',function (req,res) {
    res.send('hello express ');
});
app.get('/login',function (req,res) {
    // res.send('登录模块 ');
    res.render("login")
});
app.post('/dologin',function (req,res) {
    console.log(req.body);

});
app.get('/register',function (req,res) {
    res.send('注册模块 ');
});

//动态路由传值 http://127.0.0.1:3000/news/2313
app.get('/news/:aid',function (req,res) {

    console.log(req.params); //req.params 获取动态路由的传值
    var aid=req.params.aid;
    res.send('news模块:'+aid);
});

//获取get传值 http://127.0.0.1:3000/product?aid=45
app.get('/product',function (req,res) {
    console.log(req.query);
    res.send('product'+req.query.aid+"--"+req.query.cid);
});

app.get('/index',function (req,res,next) {
console.log("你好");
    next();
});

app.get('/index',function (req,res) {
    // res.send('ejs演示');
    var msg='abc';
    res.render('index',{msg:msg});//渲染模版 render渲染 用express中的res.render不用写模版扩展名ejs
});
//没有匹配到路由 就执行404
app.use(function (req,res) {
    res.status(404).send('这是404 表示路由没有匹配到')

});
app.listen(3000,'127.0.0.1');